#ifndef __SUBSYSTEM_ARROW_BLOCK_BEHAVIOR_H__
#define __SUBSYSTEM_ARROW_BLOCK_BEHAVIOR_H__

#include <set>
#include <mutex>
#include "Engine/Point3.hpp"
#include "SubsystemBlockBehavior.hpp"

using namespace PocketSurvival::Engine;

namespace PocketSurvival
{
    // 箭，击中后是否损坏，射出得箭是否带燃烧属性
    class SubsystemArrowBlockBehavior : public SubsystemBlockBehavior
    {
    public:
        virtual void onFiredAsProjectile(Projectile *projectile) override;
        virtual bool onHitAsProjectile(std::shared_ptr<CellFace> cellFace, ComponentBody *componentBody, WorldItem *worldItem) override;

        virtual void load(const nlohmann::json& json) override;
        virtual const std::string& getName() const override;
    };
    
}

#endif
